/**
 * 系统角色实体定义
 * @description 定义系统角色的数据结构和属性
 */
export interface SysRole extends Record<string, unknown> {
  /** 角色ID */
  id: number;
  /** 角色名 */
  role_name: string;
  /** 角色唯一key */
  role_key: string;
  /** 角色类型: 0 后台角色 1前台角色 */
  role_type: number;
  /** 备注 */
  remark: string;
  /** 状态: 0有效 1禁用 */
  status: number;
  /** 是否系统角色: 0业务角色 1系统角色 */
  is_sys: number;
  /** 创建时间 */
  time: number;
  /** 更新时间 */
  update_time: number;
  /** 是否删除 (0:未删除 1:已删除) */
  disabled: number;
}

/**
 * 创建角色时的数据类型
 * @description 排除id字段的角色数据
 */
export type CreateSysRoleDto = Omit<SysRole, 'id'>;

/**
 * 更新角色时的数据类型
 * @description 排除id和time字段的部分角色数据
 */
export type UpdateSysRoleDto = Partial<Omit<SysRole, 'id' | 'time'>>;

/**
 * 角色查询条件类型
 * @description 用于列表查询的条件参数
 */
export type SysRoleQueryDto = Partial<
  Pick<SysRole, 'role_name' | 'role_key' | 'role_type' | 'status' | 'is_sys' | 'disabled'>
>;
